home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / animatin / anim_q2z / toxic / programs / reset / reset.s < prev   
Text File  |  1995-04-26  |  7KB  |  290 lines

  1. DEBUT:
  2. * AFFICHE LE MESSAGE
  3.  
  4.         PEA     TEXT
  5.         MOVE.W  #9,-(SP)
  6.         TRAP    #1
  7.         ADDQ.L  #6,SP
  8.  
  9. * EXECUTE LA ROUTINE EN MODE
  10. * SUPERVISEUR (POUR ACCEDER
  11. * AUX REGISTRES DU RESET)
  12.  
  13.         PEA     INIT
  14.         MOVE.W  #$26,-(SP)
  15.         TRAP    #14
  16.         ADDQ.L  #6,SP
  17.  
  18. * FIN DU PROGRAM EN RESERVEANT LA
  19. * MEMOIRE (POUR QUE LE SYSTEM N'EF-
  20. * FACE PAS NOTRE ROUTINE).
  21.  
  22.         MOVE.W  #0,-(SP)
  23.         MOVE.L  #FIN-DEBUT+1024,-(SP)
  24.         MOVE.W  #$31,-(SP)
  25.         TRAP    #1
  26.  
  27. TEXT:   DC.B    "DEMO RESET INSTALLE !",13,10
  28.         DC.B    "CODED BY FIRSTE FOR THE",13,10
  29.         DC.B    "TOXIC MAG. (C) 1992",7,0
  30.         EVEN
  31. INIT:
  32. * ADRESSE DU NOUVEAU RESET DANS SON VECTEUR
  33.         LEA     RESET(PC),A0
  34.         MOVE.L  A0,$42A
  35. * VALIDATION DU NOUVEAU RESET AVEC LA VALEUR
  36. * PI.
  37.         MOVE.L  #$31415926,$426
  38.         RTS
  39.         
  40.  
  41.  
  42.  
  43. RESET:  
  44.         MOVE.W  #$2700,SR
  45. * ADRESSE DE L'éCRAN POUR MA
  46. * DéMO
  47.         MOVE.L  #$78000,$44E
  48. * DéTRUIT LA ROUTINE RESET
  49.         CLR.L   $426
  50. * BIP CLAVIER
  51.         CLR.B   $484.W
  52. * REGISTRES DES TIMERS
  53.         CLR.B   $FFFA1F
  54.         CLR.B   $FFFA21
  55.         CLR.B   $FFFA23
  56.         CLR.B   $FFFA25
  57.         CLR.B   $FFFA19
  58.         CLR.B   $FFFA1B
  59.         CLR.B   $FFFA1D
  60.         CLR.B   $FFFA07
  61.         CLR.B   $FFFA09
  62.         CLR.B   $FFFA13
  63.         CLR.B   $FFFA15
  64.         CLR.B   $FFFA0F
  65.         CLR.B   $FFFA11
  66.         CLR.B   $FFFA17
  67. * VECTEURS DES TIMERS
  68.         CLR.L   $110
  69.         CLR.L   $114
  70.         CLR.L   $120
  71.         CLR.L   $134
  72. * INSTAURATION D'UNE PILE AVANT LA
  73. * DEMO.
  74.         LEA     DEMO(PC),A0
  75.         SUB.L   #4,A0
  76.         MOVE.L  A0,SP
  77. * ECRAN NOIR
  78.         MOVE.L  #$FFFF8240,A0
  79.         CLR.L   (A0)+
  80.         CLR.L   (A0)+
  81.         CLR.L   (A0)+
  82.         CLR.L   (A0)+
  83.         CLR.L   (A0)+
  84.         CLR.L   (A0)+
  85.         CLR.L   (A0)+
  86.         CLR.L   (A0)+
  87. * BASSE RéSOLUTION
  88. * 50 HZ
  89. * ADRESSE DE L'éCRAN POUR LE
  90. * SHIFTER
  91.         MOVE.B  #0,$FFFF8260
  92.         MOVE.B  #2,$FFFF820A
  93.         MOVE.B  #$07,$FFFF8201
  94.         MOVE.B  #$80,$FFFF8203
  95. * DéCOMPACTAGE ( PACK ICE 2.4)  
  96.         BSR     UNPACK
  97. * EXECUTION DE LA DEMO
  98.         BRA     DEMO
  99.  
  100. UNPACK:
  101.         LEA     DEMO(PC),A0
  102. ;********************************************* UNPACKING ROUTINE OF PACK-ICE
  103. ; A0 = ADRESS OF PACKED DATA
  104. ; "BSR" OR "JSR" TO ICE_DECRUNCH_2 WITH REGISTER A0 PREPARED.
  105. ICE_DECRUNCH_2:
  106.         LINK    A3,#-120
  107.         MOVEM.L D0-A6,-(SP)
  108.         LEA     120(A0),A4
  109.         MOVE.L  A4,A6
  110.         BSR     .GETINFO
  111.         CMPI.L  #'ICE!',D0
  112.         BNE     .NOT_PACKED
  113.         BSR.S   .GETINFO
  114.         LEA.L   -8(A0,D0.L),A5
  115.         BSR.S   .GETINFO
  116.         MOVE.L  D0,(SP)
  117.         ADDA.L  D0,A6
  118.         MOVE.L  A6,A1
  119.  
  120.         MOVEQ   #119,D0
  121. .SAVE:  MOVE.B  -(A1),-(A3)
  122.         DBF     D0,.SAVE
  123.         MOVE.L  A6,A3
  124.         MOVE.B  -(A5),D7
  125.         BSR.S   .NORMAL_BYTES
  126.         MOVE.L  A3,A5
  127.  
  128.  
  129.         BSR     .GET_1_BIT
  130.         BCC.S   .NO_PICTURE
  131.         MOVE.W  #$0F9F,D7
  132.         BSR     .GET_1_BIT
  133.         BCC.S   .ICE_00
  134.         MOVEQ   #15,D0
  135.         BSR     .GET_D0_BITS
  136.         MOVE.W  D1,D7
  137. .ICE_00:        MOVEQ   #3,D6
  138. .ICE_01:        MOVE.W  -(A3),D4
  139.         MOVEQ   #3,D5
  140. .ICE_02:        ADD.W   D4,D4
  141.         ADDX.W  D0,D0
  142.         ADD.W   D4,D4
  143.         ADDX.W  D1,D1
  144.         ADD.W   D4,D4
  145.         ADDX.W  D2,D2
  146.         ADD.W   D4,D4
  147.         ADDX.W  D3,D3
  148.         DBRA    D5,.ICE_02
  149.         DBRA    D6,.ICE_01
  150.         MOVEM.W D0-D3,(A3)
  151.         DBRA    D7,.ICE_00
  152. .NO_PICTURE
  153.         MOVEM.L (SP),D0-A3
  154.  
  155. .MOVE   MOVE.B  (A4)+,(A0)+
  156.         SUBQ.L  #1,D0
  157.         BNE.S   .MOVE
  158.         MOVEQ   #119,D0
  159. .REST   MOVE.B  -(A3),-(A5)
  160.         DBF     D0,.REST
  161. .NOT_PACKED:
  162.         MOVEM.L (SP)+,D0-A6
  163.         UNLK    A3
  164.         RTS
  165.  
  166. .GETINFO: MOVEQ #3,D1
  167. .GETBYTES: LSL.L        #8,D0
  168.         MOVE.B  (A0)+,D0
  169.         DBF     D1,.GETBYTES
  170.         RTS
  171.  
  172. .NORMAL_BYTES:  
  173.         BSR.S   .GET_1_BIT
  174.         BCC.S   .TEST_IF_END
  175.         MOVEQ.L #0,D1
  176.         BSR.S   .GET_1_BIT
  177.         BCC.S   .COPY_DIREKT
  178.         LEA.L   .DIREKT_TAB+20(PC),A1
  179.         MOVEQ.L #4,D3
  180. .NEXTGB:        MOVE.L  -(A1),D0
  181.         BSR.S   .GET_D0_BITS
  182.         SWAP.W  D0
  183.         CMP.W   D0,D1
  184.         DBNE    D3,.NEXTGB
  185. .NO_MORE: ADD.L 20(A1),D1
  186. .COPY_DIREKT:   
  187.         MOVE.B  -(A5),-(A6)
  188.         DBF     D1,.COPY_DIREKT
  189. .TEST_IF_END:   
  190.         CMPA.L  A4,A6
  191.         BGT.S   .STRINGS
  192.         RTS     
  193.  
  194. .GET_1_BIT:
  195.         ADD.B   D7,D7
  196.         BNE.S   .BITFOUND
  197.         MOVE.B  -(A5),D7
  198.         ADDX.B  D7,D7
  199. .BITFOUND:
  200.         RTS     
  201.  
  202. .GET_D0_BITS:   
  203.         MOVEQ.L #0,D1
  204. .HOLE_BIT_LOOP: 
  205.         ADD.B   D7,D7
  206.         BNE.S   .ON_D0
  207.         MOVE.B  -(A5),D7
  208.         ADDX.B  D7,D7
  209. .ON_D0: ADDX.W  D1,D1
  210.         DBF     D0,.HOLE_BIT_LOOP
  211.         RTS     
  212.  
  213.  
  214. .STRINGS: LEA.L .LENGTH_TAB(PC),A1
  215.         MOVEQ.L #3,D2
  216. .GET_LENGTH_BIT:        
  217.         BSR.S   .GET_1_BIT
  218.         DBCC    D2,.GET_LENGTH_BIT
  219. .NO_LENGTH_BIT: 
  220.         MOVEQ.L #0,D4
  221.         MOVEQ.L #0,D1
  222.         MOVE.B  1(A1,D2.W),D0
  223.         EXT.W   D0
  224.         BMI.S   .NO_üBER
  225. .GET_üBER:
  226.         BSR.S   .GET_D0_BITS
  227. .NO_üBER:       MOVE.B  6(A1,D2.W),D4
  228.         ADD.W   D1,D4
  229.         BEQ.S   .GET_OFFSET_2
  230.  
  231.  
  232.         LEA.L   .MORE_OFFSET(PC),A1
  233.         MOVEQ.L #1,D2
  234. .GETOFFS: BSR.S .GET_1_BIT
  235.         DBCC    D2,.GETOFFS
  236.         MOVEQ.L #0,D1
  237.         MOVE.B  1(A1,D2.W),D0
  238.         EXT.W   D0
  239.         BSR.S   .GET_D0_BITS
  240.         ADD.W   D2,D2
  241.         ADD.W   6(A1,D2.W),D1
  242.         BPL.S   .DEPACK_BYTES
  243.         SUB.W   D4,D1
  244.         BRA.S   .DEPACK_BYTES
  245.  
  246.  
  247. .GET_OFFSET_2:  
  248.         MOVEQ.L #0,D1
  249.         MOVEQ.L #5,D0
  250.         MOVEQ.L #-1,D2
  251.         BSR.S   .GET_1_BIT
  252.         BCC.S   .LESS_40
  253.         MOVEQ.L #8,D0
  254.         MOVEQ.L #$3F,D2
  255. .LESS_40: BSR.S .GET_D0_BITS
  256.         ADD.W   D2,D1
  257.  
  258. .DEPACK_BYTES:
  259.         LEA.L   2(A6,D4.W),A1
  260.         ADDA.W  D1,A1
  261.         MOVE.B  -(A1),-(A6)
  262. .DEP_B: MOVE.B  -(A1),-(A6)
  263.         DBF     D4,.DEP_B
  264.         BRA     .NORMAL_BYTES
  265.  
  266.  
  267. .DIREKT_TAB:
  268.         DC.L $7FFF000E,$00FF0007,$00070002,$00030001,$00030001
  269.         DC.L     270-1, 15-1,    8-1,    5-1,    2-1
  270.  
  271. .LENGTH_TAB:
  272.         DC.B 9,1,0,-1,-1
  273.         DC.B 8,4,2,1,0
  274.  
  275. .MORE_OFFSET:
  276.         DC.B      11,   4,   7,  0      ; BITS LESEN
  277.         DC.W    $11F,  -1, $1F  ; STANDARD OFFSET
  278.  
  279. ENDE_ICE_DECRUNCH_2:
  280. ;************************************************** END OF UNPACKING ROUTINE
  281.  
  282.  
  283. * C'EST L'ESPACE POUR LA PILE
  284.         DS.B    512
  285. DEMO:
  286. * LA DEMO EST ECRITE EN PC RELATIF POUR
  287. * FACILITER SON INTEGRATION.
  288.         INCBIN  A:\RESET\RESET.BIN
  289.         DS.B    512
  290. FIN: